Communication between nodes in a communication network involves the allocation of resources among the nodes for uplink and downlink traffic. As an example, traffic is transmitted and received by one or more nodes of a network, wherein a centralized controller controls communication with the nodes in a network. For instance, the centralized controller may use any number of communication schemes for transferring information to and from the remote units, and often information is communicated using data packets with frames. As information is communicated, the packets may be stored (e.g., queued) in a buffer for an amount of time until the processor of the centralized node or the processor of the remote unit is ready to transmit the information.
Communication networks may comprise a plurality of buffers. For example, each remote node may have a buffer for uplink (UL) traffic and the centralized node may have a buffer for downlink (DL) traffic. The centralized node's buffer usually has a finite amount of buffer storage space, and DL buffer is often allocated (e.g., split) such that a portion of the finite amount of buffer storage space services each node in communication with the centralized node. Traditionally allocation of DL buffer storage space is statically and equally applied (to the extent possible) based on the number of remote nodes in the system. For example, if there are four remote nodes in a network, the DL buffer space would be equally divided into fourths, such that each remote node is allocated one-fourth of the total available buffer space. DL buffer space allocation usually remains static as long as the number of connected remote nodes does not change, and may only change when a remote node joins or leaves the network connection with the centralized node.
A remote node's traffic will vary depending on several variables, including time of day, activity of a population, and a type of community the network services. For instance, if a communication network including a centralized node and one or more remote nodes services a business district, there may be high demand throughout business hours as people work within the area, but less demand during non-business hours as people leave the area. In addition, certain areas served by remote nodes may encounter a spike in traffic demand during certain periods. As an example, people may travel to various areas within the community to have lunch, thereby creating a temporary increase in demand for traffic during those lunch hours. A static allocation of resources is unable to adequately handle an increase or decrease in demand from one or more remote nodes.
Such static allocation of DL buffer space does not take into account traffic activity, such as the change in the type and volume of traffic encountered by the remote nodes. When a remote node experiences a heavier traffic flow, the DL buffer space allocated to that node becomes more filled with information, which is queued, and the information waits to be processed. As more and more information is queued in the DL buffer allocated to that node, the buffer's queue length grows. If the queue becomes full and additional information is received, this may cause a queue overflow which results in information loss. Similar problems may occur in the UL buffers as well.
Some networks allocate other system resources, for example, bandwidth, based on the queue length of the DL buffer space and/or on the queue length of the UL buffer space. For example, a system may determine that the DL buffer allocated to a remote node has a queue length that is twice as long as the queues of DL buffers to other remote nodes. Based on such a determination, the system may decide that the remote node with the longer queue has more traffic flow at the moment. Thus, based on the length of the queue, the system may allocate more bandwidth to that remote unit.
Each remote node may have a mix of different traffic flows in DL and/or UL direction, for example, high priority (HP) data traffic, real-time voice and video traffic, streaming video traffic, and best effort (BE) data traffic. Each remote node could have a number of traffic classes, for supporting traffic flows with different priorities and bandwidth requirements. Each traffic class is typically assigned a portion of the DL and/or UL buffer space allocated to the remote node. The size of each remote node's DL and UL buffer space is usually statically divided among all of its traffic classes. When bandwidth allocation is based on a function of the queue length of a remote node's DL and/or UL buffer space, the present inventor has discovered that unexpected problems arise causing such a bandwidth allocation to be become skewed. For example, the queue size of a remote unit with a higher priority traffic with low data flow may be deceptively short thereby causing bandwidth allocation calculations to yield a bandwidth allocation that is lower that the bandwidth needed for a node with a high priority traffic to properly perform.
For instance, higher priority traffic usually involves the transfer of less data. For example, voice traffic is often transferred with a higher traffic priority class as compared to web surfing. The transfer of voice involves the transfer of less data as compared to web surfing because voice traffic with low data flow comprise less data as compared to web surfing, which transfers much more data back and forth (e.g., downloading multiple websites, videos, and/or the like). As such, because higher priority traffic tends to communicate less data, the size of the higher priority traffic queue will be typically shorter than the size of a lower priority traffic queue. If the size of the high priority traffic queue is deceptively short, when allocating bandwidth to the remote units based on their queue lengths, the unit with the higher priority traffic will likely be allocated minimal bandwidth even though it should be allocated more bandwidth to ensure that the high priority traffic is transferred at a speed that accommodates its high priority classification.
In short, if the buffer space is assigned to the traffic flows of remote nodes mainly based on their data rate requirements without any consideration of their priorities, determining bandwidth allocation based on the queue length of the remote node's UL buffer or allocated DL buffer does not necessarily result in a proper allocation of bandwidth, because the queue lengths of buffers handling higher priority traffic is often deceptively short. As such, having a typical buffer size allocation for each remote node based on bandwidth needs of its traffic flows could prevent the system from effectively handling the priority of traffic flows over time, and could prevent bandwidth allocations which are based on queue length, from yielding effective results.